Traditionally, graphic user interfaces (hereinafter "GUIs") have been employed to facilitate interaction of a user with the file and execution system of a computer system, to present information graphically and/or in a manner approximating a printed page ("what you see is what you get" or "WYSIWYG"), or to present a desktop metaphor. Of course, there are other aspects of modern GUIs not encompassed by this generalization, but which are known to those skilled in the art.
Typical graphic objects in a GUI are icons presented on a background or "desktop", with icons each representing a set of files, application programs, system resources, or the like. These icons may be relocated or selected, which instructs the underlying operating system to relocate the referenced file in the directory structure, execute or open the file, depending on its type, or to operate on one referenced file by another referenced application. A known paradigm is "drag and drop", which allows the one or more objects, represented by one or more icons, to be operated on by another object, also represented by a graphic object or icon. Such functions include, but are not limited to, move, copy, execute, filter, open, print, and delete. In general, however, the user does not operate to modify the icon itself with a corresponding function executed by the operating system or application.
In addition, within a group of objects, the objects may be ranked, e.g., by name, type, size, date, location, relevance to search criterion, or other attribute. Thus, by defining a graphic object representing a set of files, functions may be performed on the set of files. These known GUIs operate at a computer or disk operating system level, and thus typically operate on data sets which represent discrete files. Known GUIs include Apple Macintosh Operating System 7 and Microsoft Windows 95 and Windows NT.
Another paradigm for dealing with data in more typical databases includes GUIs for database system formulation. In these systems, data sets include a plurality of addressable records. The database operations are represented graphically and may be manipulated by the user to formulate a search or report. In this case, functions may be chained, so that complex database searches may be formulated by graphic representations of elemental operations. These systems do not, however, provide a generic icon which is modified to reflect a data subset employed. In general, these known systems are employed in the design of a database system or customized reports, rather than by a user to formulate a search during normal use of the system. This is because these graphic operations represent program steps or objects, and therefore the resulting complex program must still be verified and debugged. These systems also present different icons for each function, to allow distinguishability. As used in these systems, the graphical programming features are not generally intended to make relatively simple searches more efficient, but rather to allow a programmer to formulate complex reports at a relatively high level.
The use of search engines to search databases is known. So is the ability to use Boolean logical connectors to conduct a search. The use of a set of results of a Boolean search to perform a new search, by modification of a Boolean operator or the addition of new Boolean constraints, is known.
The use of Venn diagrams is known in mathematical set theory. Other graphical representations include histograms, line graphs, circle graphs, star graphs, matrices, and scatter plot diagrams. In general, the applicability of these different types of graphical representations relies on the ability of a user to define desired subsets, e.g., using crisp logic, fuzzy logic, graphic regions of the set space, or other criterion, such as a ranking according to a criteria, to define the desired subset.
However, it is not well known in the art of front ends for search engines or browsers to use well-articulated graphical representations of set theory, including graphical representations of the logical operations "AND", "OR" and "NOT," and any symbols that are used tend to be static and non-manipulable.
U.S. Pat. No. 5,551,488, expressly in corporated herein by reference in the entirety, provides a system in which a graphical representation of a narrowing query set operation, e.g., a Venn diagram representing two sets within a data space, is provided within a window. Each window represents a data space, and the window includes but a single representation. The search may be modified by selecting areas of the graphic object representation within the window. There is no provision for employing the graphical representation as an icon. Thus, this system allows the user to visualize the element of the search in a graphical representation, but does not graphically represent the chaining of search criteria.
U.S. Pat. No. 5,544,267, expressly incorporated herein by reference in the entirety, provides a system in which an imprecise sketch of a graphical set representation is inputted and interpreted by a computer system. This system does not provide for interactive modification of the search based on the graphic representation.
U.S. Pat. No. 5,418,950, expressly incorporated herein by reference in the entirety, relates to a graphic structured query language ("SQL") query generator system. This system employs graphic models of SQL language commands to generate a report. There is no provision for manipulation of configuration or selection of subsidiary objects within graphic icons to represent set inclusion criteria.
U.S. Pat. No. 5,442,738, expressly incorporated herein by reference in the entirety, provides a system in which a logical and arithmetic relation of objects may be defined and manipulated using a GUI. The graphic objects themselves, however, are not modified in configuration nor are subsidiary objects within graphic representations selected to represent a selection of set inclusion criteria.
None of the above-cited references formalizes a system of notation, bounded and conventionally stylized, whether for display on a computer or otherwise, for description of traditional logical relationships of conventional logic diagrams, or for translation to and from conventional logic diagrams.
Traditional logical symbols are arcane, and do not intuitively represent the set inclusion criteria. Thus, while AND, OR and NOT are readily understood, a complex expression employing such words may become incomprehensible. Conventional symbols, in which AND is represented by a half circle, OR by a heavy vertical line, NOT by a circle, Exclusive OR by a sort of shield, are not intuitive. Likewise, the use of .andgate., .orgate. and / to represent AND, OR and NOT in set theory, and {character pullout}, {character pullout}, {character pullout} in propositional logic, are also not intuitive.